#ifndef MSG_QUEUE_H
#define MSG_QUEUE_H

#include <sys/types.h>
#include "log_utils.h"

// 消息队列键值
#define MSG_QUEUE_KEY 12345  // WiFi消息队列的键值

// 消息类型定义
#define MSG_TYPE_WIFI_RESET 1  // WiFi热点重置消息

// 消息结构体定义
struct msg_data {
    long msg_type;       // 消息类型（必须为正数）
    char msg_text[128];  // 消息内容
};

// 全局变量，消息队列ID
extern int g_msg_queue_id;

// 初始化消息队列，传入key值，返回消息队列ID
int init_msg_queue(key_t key);

// 发送消息到队列，第一个参数是队列ID
int send_msg(int queue_id, long msg_type, const char *msg_text);

// 接收消息从队列，第一个参数是队列ID
int recv_msg(int queue_id, long msg_type, struct msg_data *msg, int wait_flag);

// 获取当前的消息队列ID
int get_msg_queue_id(void);

#endif /* MSG_QUEUE_H */ 